package com.cheer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cheer.common.Page;
import com.cheer.dto.LecTeacherAddDTO;
import com.cheer.entity.LecTeacherEntity;
import com.cheer.param.LecTeacherListParam;
import com.cheer.vo.*;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 用户信息
 *
 * @author cheer
 */
public interface LecTeacherService extends IService<LecTeacherEntity> {

    Page<LecTeacherVO> listByPage(LecTeacherListParam lecTeacherListParam);

    List<LecTeacherVO> list( LecTeacherListParam lecTeacherListParam );

    void download(LecTeacherListParam lecTeacherListParam);

    void add(LecTeacherAddDTO addDTO);

    LecTeacherInfoVO info(Integer id);

    void update(LecTeacherAddDTO addDTO);

    Map<Integer, String> getOrgIdMapOrgName(List<String> paths);

    String getOrgStr(Map<Integer, String> map, String path);

    void delete(List<Integer> ids);

    void reset(Integer id);

    void templateDownload() throws IOException;

    List<String> batchImport(MultipartFile file);

    LecCurrentTeaVO getUserLinkedTeaInfo();

    void register(HttpServletRequest request, String codeInRequest);

    int countByPath(String path);

    LecTeacherEntity getByAccount(String adTel);

    List<TeacherLectureCountVo> queryTeacherLectureCount(Date startTime, Date endTime, Integer type);

    List<LecTeacherCourseDetailVo> queryCourseTypeSeries(Date startTime, Date endTime, Long teacherId, Integer type);
}

